package com.jiangjiang.eshop.order.price.v1.factory;

import com.jiangjiang.eshop.order.price.v1.calculator.FreightCalculator;
import com.jiangjiang.eshop.order.price.v1.calculator.PromotionActivityCalculator;
import com.jiangjiang.eshop.order.price.v1.calculator.TotalPriceCalculator;
import com.jiangjiang.eshop.promotion.dto.PromotionActivityDTO;

/**
 * @Author Jianghaowen
 * @Date 2021/7/14
 * @Description: 订单金额计算工厂
 * @Version V1.0
 **/
public interface OrderPriceCalculatorFactory {

    /**
     * 创建订单总金额计算器
     * @return 订单总金额计算器
     */
    TotalPriceCalculator createTotalPriceCalculator();

    /**
     * 创建运费计算器
     *
     * @return 运费计算器
     */
    FreightCalculator createFreightCalculator();

    /**
     * 创建营销活动优惠金额计算器
     * @param promotionActivity 营销活动
     * @return 营销活动优惠金额计算器
     */
    PromotionActivityCalculator createPromotionActivityCalculator(PromotionActivityDTO promotionActivity);
}
